Since commit
df84854d9073c457d79d7c2e6a5750428c52ff01 the function
_onSessionOpened() is now async. This means that if an error occurs
we get the following warning:
```
gnome-shell[1014]: Unhandled promise rejection. To suppress this
warning, add an error handler to your promise chain with .catch()
or a try-catch block around your await expression. Stack trace of
the failed promise:
_onSessionOpened@resource:///org/gnome/shell/gdm/loginDialog.js:1166:27 @resource:///org/gnome/shell/ui/init.js:21:20
```
Follow the suggestion and add a try-catch block in order to reveal
what the error is. In the catch phase, reset the faded AuthPrompt
otherwise we can't retry with another user.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3448>
}
async _onSessionOpened(client, serviceName, sessionId) {
- if (sessionId) {
- const conflictingSession = await this._findConflictingSession(sessionId);
- if (conflictingSession) {
- this._showConflictingSessionDialog(serviceName, conflictingSession);
- return;
+ try {
+ if (sessionId) {
+ const conflictingSession = await this._findConflictingSession(sessionId);
+ if (conflictingSession) {
+ this._showConflictingSessionDialog(serviceName, conflictingSession);
+ return;
+ }
}
- }
- this._authPrompt.finish(() => this._startSession(serviceName));
+ this._authPrompt.finish(() => this._startSession(serviceName));
+ } catch (error) {
+ logError(error, `Failed to start session '${sessionId}'`);
+ this._authPrompt.reset();
+ }
}
_waitForItemForUser(userName) {